package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcYingShiMonitor;
import com.csun.cmny.provider.model.dto.yingshi.YingShiMonitorQueryDto;
import com.csun.cmny.provider.model.dto.yingshi.YingshiMonitorEditDto;
import com.csun.cmny.provider.model.vo.yingshi.YingShiMonitorVo;
import com.csun.cmny.provider.model.vo.yingshi.YingShiPlayerVo;

import java.util.List;

public interface DmcYingShiMonitorService extends IService<DmcYingShiMonitor> {

    /**
     * 获取萤石摄像头监控列表
     *
     * @param yingShiMonitorQueryDto    the ying shi monitor query dto
     *
     * @return  the ying shi monitor vo list.
     */
    List<YingShiMonitorVo> queryListWithPage(YingShiMonitorQueryDto yingShiMonitorQueryDto);

    /**
     * 添加萤石摄像头通道监控
     *
     * @param channelId     the channel id
     * @param loginAuthDto  the login auth dto
     *
     * @return  the int.
     */
    Integer addSelect(Long channelId, LoginAuthDto loginAuthDto);

    /**
     * 添加萤石摄像头通道监控
     *
     * @param channelIdList the channel id list
     * @param loginAuthDto  the login auth dto
     *
     * @return  the int.
     */
    Integer save(List<Long> channelIdList, LoginAuthDto loginAuthDto);

    /**
     * 修改萤石摄像头通道监控信息(序号)
     *
     * @param yingshiMonitorEditDto the ying shi monitor edit dto
     * @param loginAuthDto  the login auth dto
     *
     * @return  the int.
     */
    Integer edit(YingshiMonitorEditDto yingshiMonitorEditDto, LoginAuthDto loginAuthDto);

    /**
     * 根据id删除萤石摄像头通道监控
     *
     * @param id    the id
     *
     * @return  the int.
     */
    Integer deleteById(Long id);

    /**
     * 获取萤石摄像头视频监控地址
     *
     * @param groupIdList   the group id list
     *
     * @return  the ying shi player vo list.
     */
    List<YingShiPlayerVo> queryPlayList(List<Long> groupIdList);
}
